# 定义变量
# 定义变量， = 号两边需要有空格
import numbers

username = "张三"
# num1和num2和num3 变量的值都是10
num1 = num2 = num3 = 10
# name 赋值给张三，age赋值给10
name, age = "张三", 10

price = 1.2
num = 3
total = price * num
print("总价 %.2f" % total)

# 变量的修改
year = 2024
print(year)
year = "2025"
print(year)

# 常量（约定大写的变量为常量，实际上也是变量）
PI = 3.1415926

# type 获取变量的数据类型
print(type(PI))
# isinstance 判断某个变量是否是某个类型
print(isinstance(PI, float))

# 输出30个#号
print("#" * 30)

# 获取字符串的索引，索引从0开始
strInfo = "这是一个字符串"
print(strInfo)
print("获取字符串的第一个字符: ", strInfo[0])
print("获取字符串的最后一个字符: ", strInfo[-1])
print("获取字符串第2个到第4个字符(左闭右开): ", strInfo[2:5])
print("字符串转换成byte数组", strInfo.encode("utf-8"))
print("byte数组转换成字符串", strInfo.encode("utf-8").decode(encoding="utf-8"))

# 字符串的反转
print(strInfo[::-1])

# 字符串的切片 [开始索引:结束索引:步长] 步长为正说明正的来，为负说明反着来
str1 = "123456789"
print(str1[0:9: 2])

# Decimal 类型
num1 = 0.1
num2 = 0.2
print("浮点数精度丢失", num1, "+", num2, "=", num1 + num2)

from decimal import Decimal

num1 = Decimal("0.1")
num2 = Decimal("0.2")
print("精度正常", num1, "+", num2, "=", num1 + num2)
